Micron Document
🎖️GitЯра🎖️


Displaying Raw • Download

feature/map/src/commonMain/kotlin/org/meshtastic/feature/map/tiles/MapTileCatalogue.kt renovate/fastlane-2.x-lockfile (056eed64) Text, 7.16 KB

T8b949e/*
* Copyright (c) 2026 Meshtastic LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
Tff7b72package T7ee787org.meshtastic.feature.map.tiles

Tff7b72import T7ee787org.meshtastic.core.resources.Res
Tff7b72import T7ee787org.meshtastic.core.resources.map_overlay_hillshade
Tff7b72import T7ee787org.meshtastic.core.resources.map_overlay_precipitation
Tff7b72import T7ee787org.meshtastic.core.resources.map_overlay_weather_radar

T8b949e/**
* The tile sources the app offers, independent of which engine draws them.
*
* These are URL templates, zoom ranges and attribution strings — data, not rendering — but they lived in the MapLibre
* module, which the Google flavour cannot depend on. So the Google map offered four Google map types and nothing else,
* and a user who wanted USGS or Esri there had to type the tile URL in by hand as a custom source.
*/
Tff7b72object T56d364MapTileCatalogue Tb4b4b4{

Tff7b72val Te6edf3OpenStreetMap Tff7b72=
Te6edf3RasterBasemapSourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffosmTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Ta5d6ff"Ta5d6ffOpenStreetMapTa5d6ff"Tb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72= Te6edf3listOfTb4b4b4(Ta5d6ff"Ta5d6ffhttps://tile.openstreetmap.org/{z}/{x}/{y}.pngTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff1T79c0ff9Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ff&copy; <a href=Ta5d6ff\"Ta5d6ffhttps://www.openstreetmap.org/copyrightTa5d6ff\"Ta5d6ff>OpenStreetMap</a>Ta5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3OpenTopo Tff7b72=
Te6edf3RasterBasemapSourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffopentopoTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Ta5d6ff"Ta5d6ffOpenTopoMapTa5d6ff"Tb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72= Te6edf3listOfTb4b4b4(Ta5d6ff"Ta5d6ffhttps://tile.opentopomap.org/{z}/{x}/{y}.pngTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff1T79c0ff7Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ff&copy; OpenTopoMap (CC-BY-SA)Ta5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3UsgsTopo Tff7b72=
Te6edf3RasterBasemapSourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffusgs-topoTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Ta5d6ff"Ta5d6ffUSGS TopoTa5d6ff"Tb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72=
Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ffhttps://basemap.nationalmap.gov/arcgis/rest/services/USGSTopo/MapServer/tile/{z}/{y}/{x}Ta5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff1T79c0ff6Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ffUSGS The National MapTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3UsgsSatellite Tff7b72=
Te6edf3RasterBasemapSourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffusgs-satTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Ta5d6ff"Ta5d6ffUSGS ImageryTa5d6ff"Tb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72=
Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ffhttps://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/tile/{z}/{y}/{x}Ta5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff1T79c0ff6Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ffUSGS The National MapTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3EsriTopo Tff7b72=
Te6edf3RasterBasemapSourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffesri-topoTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Ta5d6ff"Ta5d6ffEsri TopoTa5d6ff"Tb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72=
Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ffhttps://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_MapTa5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ff/MapServer/tile/{z}/{y}/{x}.jpgTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff2T79c0ff0Tb4b4b4,
Te6edf3attributionHtml Tff7b72=
Ta5d6ff"Ta5d6ffEsri, HERE, Garmin, FAO, NOAA, USGS, &copy; OpenStreetMap contributors, Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ffand the GIS User CommunityTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72val Te6edf3EsriImagery Tff7b72=
Te6edf3RasterBasemapSourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffesri-imageryTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Ta5d6ff"Ta5d6ffEsri ImageryTa5d6ff"Tb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72=
Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ffhttps://clarity.maptiles.arcgis.com/arcgis/rest/services/World_ImageryTa5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ff/MapServer/tile/{z}/{y}/{x}.jpgTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff2T79c0ff0Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ffEsri, Maxar, Earthstar Geographics, and the GIS User CommunityTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)

T8b949e/** Every raster basemap, in menu order. */
Tff7b72val Te6edf3basemapsTb4b4b4: Te6edf3ListTff7b72<Te6edf3RasterBasemapSourceTff7b72> Tff7b72=
Te6edf3listOfTb4b4b4(Te6edf3OpenStreetMapTb4b4b4, Te6edf3OpenTopoTb4b4b4, Te6edf3UsgsTopoTb4b4b4, Te6edf3UsgsSatelliteTb4b4b4, Te6edf3EsriTopoTb4b4b4, Te6edf3EsriImageryTb4b4b4)

Tff7b72val Te6edf3Hillshade Tff7b72=
Te6edf3RasterOverlaySourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffhillshadeTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3map_overlay_hillshadeTb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72= Te6edf3listOfTb4b4b4(Ta5d6ff"Ta5d6ffhttps://s3.amazonaws.com/elevation-tiles-prod/terrarium/{z}/{x}/{y}.pngTa5d6ff"Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff1T79c0ff5Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ff&copy; AWS Open Data Terrain TilesTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
T8b949e// Not the default. MapLibre assumes Mapbox Terrain-RGB; every keyless public DEM is Terrarium, and the
T8b949e// mismatch is silent — shading looks plausible but is wrong.
Te6edf3demEncoding Tff7b72= Te6edf3DemEncodingTb4b4b4.Te6edf3TERRARIUMTb4b4b4,
Tb4b4b4)

T8b949e/**
* NEXRAD base reflectivity, quality-controlled, from NCEP's own GeoServer.
*
* WMS rather than XYZ, so the tile URL carries a `{bbox-epsg-3857}` placeholder the renderer expands to the tile's
* projected bounds.
*/
Tff7b72val Te6edf3NoaaRadar Tff7b72=
Te6edf3RasterOverlaySourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffnoaa-radarTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3map_overlay_weather_radarTb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72=
Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ffhttps://opengeo.ncep.noaa.gov/geoserver/conus/conus_bref_qcd/owsTa5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ff?SERVICE=WMS&VERSION=1.1.0&REQUEST=GetMap&LAYERS=conus_bref_qcd&STYLES=Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ff&FORMAT=image/png&TRANSPARENT=true&SRS=EPSG:3857Ta5d6ff" Tff7b72+
Ta5d6ff"Ta5d6ff&BBOX={bbox-epsg-3857}&WIDTH=256&HEIGHT=256Ta5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff1T79c0ff2Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ffNOAA/NCEPTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)

T8b949e/** Every overlay that needs no credentials, in menu order. */
Tff7b72val Te6edf3overlaysTb4b4b4: Te6edf3ListTff7b72<Te6edf3RasterOverlaySourceTff7b72> Tff7b72= Te6edf3listOfTb4b4b4(Te6edf3HillshadeTb4b4b4, Te6edf3NoaaRadarTb4b4b4)

T8b949e/**
* OpenWeatherMap precipitation, which needs a key the user supplies.
*
* Carried over from the OSMdroid map, where it was wired up with an empty appid and so never rendered; it stays
* behind a caller-supplied key rather than shipping another broken entry in the layer menu.
*/
Tff7b72fun Td2a8ffopenWeatherPrecipitationTb4b4b4(Te6edf3apiKeyTb4b4b4: Tffa657StringTb4b4b4)Tb4b4b4: Te6edf3RasterOverlaySource? Tff7b72= Te6edf3apiKey
Tb4b4b4.Te6edf3takeIf Tb4b4b4{ Tffa657itTb4b4b4.Te6edf3isNotBlankTb4b4b4(Tb4b4b4) Tb4b4b4}
Tff7b72?.Te6edf3let Tb4b4b4{ Te6edf3key Tff7b72-Tff7b72>
Te6edf3RasterOverlaySourceTb4b4b4(
Te6edf3id Tff7b72= Ta5d6ff"Ta5d6ffowm-precipitationTa5d6ff"Tb4b4b4,
Te6edf3label Tff7b72= Te6edf3ResTb4b4b4.Te6edf3stringTb4b4b4.Te6edf3map_overlay_precipitationTb4b4b4,
Te6edf3spec Tff7b72=
Te6edf3RasterTileSpecTb4b4b4(
Te6edf3tiles Tff7b72=
Te6edf3listOfTb4b4b4(
Ta5d6ff"Ta5d6ffhttps://tile.openweathermap.org/map/precipitation_new/{z}/{x}/{y}.png?appid=Tffd700$Te6edf3keyTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3maxZoom Tff7b72= T79c0ff1T79c0ff9Tb4b4b4,
Te6edf3attributionHtml Tff7b72= Ta5d6ff"Ta5d6ff&copy; OpenWeatherMapTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tb4b4b4}
Tb4b4b4}

Served by rngit 1.5.2 - Generated in 0.07s